// Material类的头文件
#ifndef MATERIAL_H
#define MATERIAL_H

// #include "core_lib_export.h"

#include <string>

// 具有特定密度和颜色的材料。
class Material
{
  private:
    // 唯一标识材料的ID
    int id;

    // 材料的密度
    double density;

    // 材料的颜色
    std::string colour;

    // 材料的名称
    std::string name;

  public:
    Material();  // 空初始化情况
    Material(int id, double density, std::string colour, std::string name);
    ~Material();

    // 访问器
    // 返回材料的ID
    int getId();

    // 返回材料的密度
    double getDensity();

    // 返回材料的颜色
    std::string getColour();

    // 返回材料的名称
    std::string getName();

    // 修改器
    // 设置材料的ID
    void setId(int id);

    // 设置材料的密度
    void setDensity(double density);

    // 设置材料的颜色
    void setColour(std::string colour);

    // 设置材料的名称
    void setName(std::string name);

    // 运算符重载
    // 注意: rhs表示右边操作数
    // 两个材料之间的相等运算符
    friend bool operator==(const Material& lhsMaterial, const Material& rhsMaterial);
};

#endif /* MATERIAL_H */